package com.bilin.coin.utils;

import java.util.ArrayList;
import java.util.List;

public class ListUtils {

    /**
     * 使用到java8以下的版本，避免低版本的java不支持lambda表达式
     * @author zhangchao
     *
     */
    public static <T> List<T> filter(List<T> list, ListUtilsHook<T> hook) {
        ArrayList<T> r = new ArrayList<T>();
        for (T t : list) {
            if (hook.test(t)) {
                r.add(t);
            }
        }
        r.trimToSize();
        return r;
    }

    /**
     * 用来给ListUtils做函数钩子的接口。
     * @author zhangchao
     *
     */
    public interface ListUtilsHook<T> {
        public boolean test(T t);
    }
}
